package com.ym.medical.domain.param;

import com.ym.common.constant.BeanCovert;
import static com.ym.common.constant.ValidRule.Add;
import static com.ym.common.constant.ValidRule.Update;
import com.ym.medical.domain.entity.HospitalEntity;
import com.ym.common.annotations.CustomConstraint;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;

/**
 * 【请填写功能名称】对象 hospital
 *
 * @author ym
 * @date 2020-08-19
 */
@ApiModel("【请填写功能名称】-修改")
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HospitalUpdateParam extends BeanCovert<HospitalEntity>{

    @ApiModelProperty("主键")
    @NotNull(message = "主键不能为空", groups = {Add.class, Update.class})
    private Long id;

    @ApiModelProperty("医院名称")
    @Size(max = 120, message = "医院名称长度超过{max}", groups = {Add.class, Update.class})
    private String hosName;

    @ApiModelProperty("医院别名")
    @Size(max = 255, message = "医院别名长度超过{max}", groups = {Add.class, Update.class})
    private String otherName;

    @ApiModelProperty("医院编码")
    @Size(max = 32, message = "医院编码长度超过{max}", groups = {Add.class, Update.class})
    private String hosCode;

    @ApiModelProperty("医院等级")
    @Size(max = 6, message = "医院等级长度超过{max}", groups = {Add.class, Update.class})
    private String hosLevel;

    @ApiModelProperty("区域级别")
    @Size(max = 6, message = "区域级别长度超过{max}", groups = {Add.class, Update.class})
    private String areaLevel;

    @ApiModelProperty("医院属性(公立/私立)")
    @Size(max = 6, message = "医院属性长度超过{max}", groups = {Add.class, Update.class})
    private String hosProp;

    @ApiModelProperty("医院类别(01综合医院02专科医院03其他04脑科医院05传染病医院06肺科医院07精神病医院)")
    @Size(max = 2, message = "医院类别长度超过{max}", groups = {Add.class, Update.class})
    private String theType;

    @ApiModelProperty("门诊时间")
    @Size(max = 200, message = "门诊时间长度超过{max}", groups = {Add.class, Update.class})
    private String obsTime;

    @ApiModelProperty("可用医保(01居民医保)")
    @Size(max = 2, message = "可用医保长度超过{max}", groups = {Add.class, Update.class})
    private String ableMed;

    @ApiModelProperty("国内排名")
    private Integer landRank;

    @ApiModelProperty("省排名")
    private Integer provRank;

    @ApiModelProperty("市级排名")
    private Integer cityRank;

    @ApiModelProperty("区域排名")
    private Integer areaRank;

    @ApiModelProperty("医院图像")
    @Size(max = 255, message = "医院图像长度超过{max}", groups = {Add.class, Update.class})
    private String hosPhoto;

    @ApiModelProperty("省")
    @Size(max = 16, message = "省长度超过{max}", groups = {Add.class, Update.class})
    private String prov;

    @ApiModelProperty("市")
    @Size(max = 16, message = "市长度超过{max}", groups = {Add.class, Update.class})
    private String city;

    @ApiModelProperty("区/县")
    @Size(max = 16, message = "区/县长度超过{max}", groups = {Add.class, Update.class})
    private String area;

    @ApiModelProperty("乡/镇")
    @Size(max = 16, message = "乡/镇长度超过{max}", groups = {Add.class, Update.class})
    private String town;

    @ApiModelProperty("详细地址")
    @Size(max = 16, message = "详细地址长度超过{max}", groups = {Add.class, Update.class})
    private String addrDesc;

    @ApiModelProperty("联系电话")
    @Size(max = 16, message = "联系电话长度超过{max}", groups = {Add.class, Update.class})
    private String phoneNo;

    @ApiModelProperty("介绍")
    @Size(max = 4000, message = "介绍长度超过{max}", groups = {Add.class, Update.class})
    private String introduction;

    @ApiModelProperty("邮箱")
    @Size(max = 128, message = "邮箱长度超过{max}", groups = {Add.class, Update.class})
    private String email;

    @ApiModelProperty("状态")
    @Size(max = 2, message = "状态长度超过{max}", groups = {Add.class, Update.class})
    private String state;

    @ApiModelProperty("医院经度")
    @Size(max = 20, message = "医院经度长度超过{max}", groups = {Add.class, Update.class})
    private String hosLongitude;

    @ApiModelProperty("医院纬度")
    @Size(max = 20, message = "医院纬度长度超过{max}", groups = {Add.class, Update.class})
    private String hosLatitude;

    @ApiModelProperty("院内导航url")
    @Size(max = 2000, message = "院内导航url长度超过{max}", groups = {Add.class, Update.class})
    private String navUrl;

    @ApiModelProperty("重点科室介绍")
    @Size(max = 1000, message = "重点科室介绍长度超过{max}", groups = {Add.class, Update.class})
    private String theGoodsDesc;

    @ApiModelProperty("重点科室")
    @Size(max = 500, message = "重点科室长度超过{max}", groups = {Add.class, Update.class})
    private String theGoods;

    @ApiModelProperty("乘车路线")
    @Size(max = 500, message = "乘车路线长度超过{max}", groups = {Add.class, Update.class})
    private String thePath;

    @ApiModelProperty("医院标签")
    @Size(max = 3000, message = "医院标签长度超过{max}", groups = {Add.class, Update.class})
    private String tags;

    @ApiModelProperty("床位数量")
    private Integer theBedNum;

    @ApiModelProperty("医院面积")
    @Size(max = 20, message = "医院面积长度超过{max}", groups = {Add.class, Update.class})
    private String theArea;

    @ApiModelProperty("优势技术")
    @Size( message = "优势技术长度超过{max}", groups = {Add.class, Update.class})
    private String advSkill;

    @ApiModelProperty("挂号时间")
    @Size(max = 500, message = "挂号时间长度超过{max}", groups = {Add.class, Update.class})
    private String regTime;

    @ApiModelProperty("优势病种")
    @Size( message = "优势病种长度超过{max}", groups = {Add.class, Update.class})
    private String advDies;

    @ApiModelProperty("热度搜")
    private Long heatSearch;

    @ApiModelProperty("医院特色")
    @Size(max = 255, message = "医院特色长度超过{max}", groups = {Add.class, Update.class})
    private String feature;

    @ApiModelProperty("创建人")
    private Long created;

    @ApiModelProperty("创建时间")
    @NotNull(message = "创建时间不能为空", groups = Add.class)
    private Date createTime;

    @ApiModelProperty("修改人")
    private Long updated;

    @ApiModelProperty("修改时间")
    @NotNull(message = "修改时间不能为空", groups = {Add.class, Update.class})
    private Date updateTime;

    @ApiModelProperty("删除标志")
    @NotEmpty(message = "删除标志不能为空", groups = {Add.class, Update.class})
    @Size(max = 2, message = "删除标志长度超过{max}", groups = {Add.class, Update.class})
    private String deleted;

    @ApiModelProperty("发布人")
    private Long publisher;

    @ApiModelProperty("发布状态")
    @Size(max = 2, message = "发布状态长度超过{max}", groups = {Add.class, Update.class})
    private String publishStatus;

    @ApiModelProperty("发布时间")
    private Date publishTime;

}
